package com.lzh.persevere.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lzh.persevere.model.entity.DislikeInfo;
import com.lzh.persevere.model.entity.LikeInfo;
import org.apache.ibatis.annotations.MapKey;

import java.util.List;
import java.util.Map;

/**
 * 点赞表数据库访问层
 *
 * @author luzhiheng
 * @since 2025-07-13
 */
public interface LikeInfoMapper extends BaseMapper<LikeInfo> {

    /**
     * 根据评论id列表查询点赞信息
     *
     * @param commentIdList 评论id列表
     * @return List<LikeInfo>
     */
    List<LikeInfo> selectByCommentIdList(List<Long> commentIdList);

    /**
     * 根据评论id和创建用户id删除点赞信息
     *
     * @param commentId 评论id
     * @param userId    点赞用户id
     */
    void deleteByCommentIdAndCreateUserId(Long commentId, Long userId);

    /**
     * 根据评论id列表和创建用户id查询点赞信息
     *
     * @param commentIdList 评论id列表
     * @param userId        创建用户id
     * @return Map<Long, LikeInfo>
     */
    @MapKey("like_comment_id")
    Map<Long, DislikeInfo> selectByCommentIdListAndCreateUserId(List<Long> commentIdList, Long userId);
}

